import http from '@ohos.net.http';
import request from '@ohos.request';
import prompt from '@system.prompt'
import router from '@system.router'
import storage from '@system.storage';
import {HuaweiIdAuthParamsHelper, HuaweiIdAuthManager} from '@hmscore/hms-jsb-account';

export default {
    //初始化参数
    data: {
        id: "1593763549",
        password: "",
        returnContent: '',
        name: "",
        fname: "",
        rname: "",
        mail: "",
        TAG: "",
        avatarUri:""
    },

    onShow() {
        // 从其他页面跳转回来，清除页面栈
        router.clear();

        // 从缓存取用户信息，自动登录
        storage.get({
            key: "id",
            success: data => {
                if (data) {
                    this.id = data;
                    storage.get({
                        key: "psw",
                        success: data => {
                            if (data) {
                                this.password = data;
                                //                                this.login();
                            }
                        }
                    })
                }
            }
        })
    },

    //账号输入框内容改变时执行
    idChange(e){
        //将输入框中的值赋给变量 id
        this.id = e.value;
    },

    //密码输入框内容改变时执行
    pswChange(e){
        //将输入框中的值赋给变量 password
        this.password = e.value;
    },

    storage_set_function(key, value){
        storage.set({
            key: key,
            value: value,
        });
    },
//华为账号登录
    signin(){
        var signInOption = new HuaweiIdAuthParamsHelper().setId().setProfile().setAuthorizationCode().build();
        HuaweiIdAuthManager.getAuthApi().getSignInIntent(signInOption).then((result)=>{
            // 登录成功，获取用户的华为帐号信息
            console.info(this.TAG+"登录成功");
            console.info(this.TAG+JSON.stringify(result));
            console.info(this.TAG+"账号名称: " + result.getDisplayName());
            console.info(this.TAG+"头像: " + result.getAvatarUri());
            console.info(this.TAG+"姓"+result.getFamilyName());
            console.info(this.TAG+"名字"+result.getGivenName());
            console.info(this.TAG+"邮箱:"+result.getEmail());
            //获取用户华为账户主要信息
            this.name=result.getDisplayName();
            this.fname=result.getFamilyName();
            this.rname=result.getGivenName();
            this.mail=JSON.stringify(result.getEmail());
            this.avatarUri = result.getAvatarUri();

            this.storage_set_function("name", this.name);
            this.storage_set_function("rname", this.rname);
            this.storage_set_function("avatarUri", this.avatarUri);

            this.download(result.getAvatarUri());
            //登录成功后跳转主页面
            router.push ({
                uri:'pages/index/index',  //跳转到指定页面
            })

        }).catch((error)=>{
            // 登录失败
            console.error(this.TAG+"登录失败");
            console.error(this.TAG+JSON.stringify(error));
            prompt.showToast({
                message: "授权失败",
                duration: 3000,
            });
        });

    },
//    下载用户头像
    download(add){
        let downloadTask;
        request.download({ url: add ,filepath:"/data/data/com.yzj.account/files/head.jpg"}).then((data) => {
            downloadTask = data;
            console.info(this.TAG+"正在下载"+JSON.stringify(data))
        }).catch((err) => {
            console.error('Failed to request the download. Cause: ' + JSON.stringify(err));
        })
    },

    //点击登录按钮后执行
    login() {
        router.push ({
            uri:'pages/index/index',  //跳转到指定页面
        })

////         let声明的变量的作用域是块或者子块
//        let httpRequest = http.createHttp();
//        // 创建一个http，里面包括发起请求、中断请求、订阅/取消订阅HTTP Response Header 事件。
//        // 每一个HttpRequest对象对应一个Http请求。如需发起多个Http请求，须为每个Http请求创建对应HttpRequest对象。
//        //返回一个HttpRequest对象，里面包括request、destroy、on和off方法。
//
//        //        let url = "http://124.70.109.103:8000/hmImgInfo";
//        let url = "http://49.4.115.226:8000/login?username="+this.id+"&password="+this.password;
//        httpRequest.request(url, {
//            // 注意请求方法：http.POST
//            method: 'POST',
////            extraData: {
////                username: this.id,
////                password: this.password
////            },
//        }, (err, data)=> {  // 判断是否请求成功
//            if (!err) {  // 请求成功
//                this.returnContent = JSON.parse(data.result);  //JSON.parse(字符串)——将字符串转换成json数据格式
//                var code = this.returnContent.return_code;  //使用json将province赋值给code
//                if(code==500 || code==401){  // 账号不存在
//                    prompt.showToast({  // 提示请求错误
//                        message: this.returnContent.return_msg,
//                        duration: 3000,
//                    })
//                }
//
//                if(code==200){  // 登录成功
//                    //  storage模块存储数据
//                    storage.set({
//                        key: 'id',
//                        value: this.id,
//                    });
//
//                    storage.set({
//                        key: 'psw',
//                        value: this.password,
//                    });
//
//                    router.push ({
//                        uri:'pages/index/index',  //跳转到指定页面
//                    })
//                }
//
//            } else {  // 请求失败
//                prompt.showToast({
//                    message: data.result,
//                    duration: 3000,
//                });
//            }
//        })
    },

    //点击注册按钮后执行
    register() {
        router.push ({
            uri:'pages/register/register', // 跳转到注册页面
        })
    },

    clickfun(params) {
        prompt.showToast({
            message: params,
            duration: 2000,
        });
    },
}
